#pragma once
#include <windows.h>
#include <mmsystem.h>
#include "GameWorld.h"
#include "GlobalDefines.h"
#include "BaseEntity.h"
#include "Player.h"
#include "DebugGrid.h"
#include "Worldmap.h"

class Game
{
private:

	HINSTANCE hInst;				// holds the instance for this app

	int screen_height;			// the width of the window
	int screen_width;				// the height of the window

	GameWorld	*gameWorld;
	WorldMap	*worldMap;
	//DebugGrid   *grid;		// Causes the crashing when the program is closing

	//Timer Variables
	LARGE_INTEGER timeStart;
	LARGE_INTEGER timeEnd;
	LARGE_INTEGER timeFreq;
	int framesPerSec;
	int deltaTime;
	bool isGO;

public:

	Game(int a_screenHeight,int a_screenWidth)
	:screen_height(a_screenHeight),
	 screen_width(a_screenWidth)
	{
	}
	~Game(){}
	MSG gameLoop();
	void update(float);
	void render();
	void inputHandler();
	void input();
	void isGameOver();

};

